
public class Schleifmaschine extends Thread
{

	//Laufzeit//
	private int runtime = 0;
	
	private int processed; //speichert die Anzahl der Stuecke  die sich in der Maschine befinden
	
	private Fabrik f;
	/*
	 * Konstruktor mit benoetigter zeit in ms
	 * fuer arbeitsschritt
	 */
	public Schleifmaschine(int runtime, Fabrik f)
	{
		this.f = f;
		this.runtime = runtime;
		this.processed = 0;
	}
	
	public void run()
	{
		while(true)
		{
			while(f.getroh())
			{
				this.processed++;
				//Zeit die fuer arbeitsschritt benoetigt wird//
				try {
					sleep(this.runtime); //Arbeitszet simulieren mittels sleep
				}
				catch(InterruptedException e)
				{
					return;
				}
				while(!f.addGeschliffenStaebchen()) //Staebchen in den Container legen
				{
					try
					{
					sleep(f.v1.getRuntime());
					}
					catch(InterruptedException e)
					{
						return;
					}
				}
				this.processed--;
			}
			try {
				sleep(f.z1.getRuntime());
			}
			catch(InterruptedException e)
			{
				return;
			}
		}
	}
	
	//Getter fuer Runtime
	//IN: void
	//Out: int (Runtime)
	public int getRuntime()
	{
		return this.runtime;
	}
	
	//Getter fuer die Anzahl der Stuecke die sich gerade in der Maschine befinden
	//IN: void
	//Out: int (Processed)
	public int getprocessed()
	{
		return this.processed;
	}
}
